package com.easyadmin.modules.stock.service.impl;


import com.easyadmin.common.web.domain.request.PageDomain;
import com.easyadmin.modules.stock.domain.*;
import com.easyadmin.modules.stock.mapper.SysTradeDateDao;
import com.easyadmin.modules.stock.service.SysTradeDateService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;


@Service("sysTradeDateService")
public class SysTradeDateServiceImpl extends ServiceImpl<SysTradeDateDao, SysTradeDateEntity>
        implements SysTradeDateService {


    @Autowired
    SysTradeDateDao sysTradeDateDao;

    @Override
    public PageInfo<SysTradeDateEntity> queryPage(SysTradeDateEntity sysTradeDateEntity, PageDomain pageDomain) {
                   PageHelper.startPage(pageDomain.getPage(), pageDomain.getLimit());
        List<SysTradeDateEntity> data =sysTradeDateDao.selectList(new QueryWrapper<SysTradeDateEntity>()
                .lambda().eq(StringUtils.isNotBlank(sysTradeDateEntity.getSysDate()),
                        SysTradeDateEntity::getSysDate,sysTradeDateEntity.getSysDate())
                .orderBy(true,false, SysTradeDateEntity::getSysDate));
        return new PageInfo<>(data);
    }

    /**
     * Describe: 根据 id 删除某条数据
     * Param: id
     * Return: Boolean
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean remove(String id) {
        sysTradeDateDao.deleteById(id);
        return true;
    }
    /**
     * Describe: 修改用户数据
     * Param: SysUser
     * Return: 操作结果
     */
    @Override
    public boolean update(SysTradeDateEntity sysTradeDateEntity) {
        List<SysTradeDateEntity> data =sysTradeDateDao.selectList(new QueryWrapper<SysTradeDateEntity>()
                .lambda().eq(StringUtils.isNotBlank(sysTradeDateEntity.getSysDate()),
                        SysTradeDateEntity::getSysDate,sysTradeDateEntity.getSysDate()));
        if(data.size()>0){
            return false;
        }
        sysTradeDateEntity.setUpdateTime(LocalDateTime.now());
        Integer result = sysTradeDateDao.updateById(sysTradeDateEntity);
        return result > 0;
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean batchRemove(String[] ids) {
        for(String  id:ids){
            sysTradeDateDao.deleteById(id);
        }
        return true;
    }
}